/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package br.uniceub.fsw.util;

import java.lang.reflect.Method;
import java.util.ArrayList;
import javax.servlet.http.HttpServletRequest;

/**
 *
 * @author sergiofernandomuniz
 */
public class TratamentoErros {


    private static ArrayList<ErroVO> listaMensagensAoUsuario;
    private static ArrayList<String> listaAtributosVO;

    public static void adicionaErroNaListaErros(String dsErro){

        ErroVO erro = new ErroVO(dsErro);

        listaMensagensAoUsuario.add(erro);

    }

    public static ArrayList<ErroVO> getListaErrosExecucao() {
        return listaMensagensAoUsuario;
    }



    public static StringBuffer montarCabecalhoJSP(){

        StringBuffer sb = Html.montarCabecalhoJSP();

        return sb;

    }

    public static void validaCamposFormulario(){


        /*implementar, para de acordo com o VO, redirecionar cada campo
        para um método em específico*/

        
    }

    public static final ArrayList<String> recuperaAtributosTela(

       ArrayList<String> listaAtributosVO){

       ArrayList<String> listaAtributosTela = new ArrayList<String>();

            for(int i = 0; i < listaAtributosVO.size(); i++){

                HttpServletRequest req = null;
                String atributoTela = (String)req.getAttribute(listaAtributosVO.get(i));
                listaAtributosTela.add(atributoTela);

        }


        return listaAtributosTela;

    }

    public static final ArrayList recuperaAtributosVO(Object vo) throws InstantiationException, IllegalAccessException{

        ArrayList<String> listaAtributosVO = new ArrayList<String>();

        Class objeto = vo.getClass();

        try {

               objeto.newInstance();

        } catch (InstantiationException ex) {

              ex.printStackTrace();

        }

        Method metodos[] = vo.getClass().getDeclaredMethods();

        for (int i = 0; i < metodos.length; i++) {

            if (metodos[i].getName().startsWith("get")) {

                listaAtributosVO.add(metodos[i].toString());

            }
        }

        return listaAtributosVO;

    }

    public static ArrayList<String> getListaAtributosVO() {
        return listaAtributosVO;
    }

    public static void setListaAtributosVO(ArrayList<String> listaAtributosVO) {
        TratamentoErros.listaAtributosVO = listaAtributosVO;
    }
    
    

}
